package com.passive.lock.service.user;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.passive.lock.model.vo.TUserVo;
import com.passive.lock.utils.Result;

public interface UserService {

	/**
	 * 用户登陆
	 * 
	 * @param uservo
	 * @param request
	 * @param response
	 * @return
	 */
	Result userLogin(String token,TUserVo uservo, HttpServletRequest request, HttpServletResponse response);

	/**
	 * 添加用户
	 * 
	 * @param uservo
	 * @param request
	 * @param response
	 * @return
	 */
	Result addUser(TUserVo uservo);

	/**
	 * 查询该部门的某些员工
	 * 
	 * @param parentId
	 * @param fullname
	 * @param page
	 * @param limit
	 * @return
	 */
	List<TUserVo> userList(String groupid, TUserVo tUserVo, Integer offset, Integer limit);

	/**
	 * 查询该部门的某些员工总数
	 * 
	 * @param tUserVo
	 * @param fullname
	 * @return
	 */
	int userListCount(String groupid, TUserVo tUserVo);

	/**
	 * 修改员工信息
	 * 
	 * @param uservo
	 * @param fullname
	 * @return
	 */
	Result updateUser(TUserVo uservo);

	/**
	 * 批量删除员工信息
	 * 
	 * @param uservos
	 * @return
	 */
	Result deleteUserList(List<Integer> userids);

	/**
	 * 删除员工信息
	 * 
	 * @param uservos
	 * @return
	 */
	Result deleteUser(TUserVo uservo, TUserVo user);

	/**
	 * 根据部门ID查询员工列表
	 * 
	 * @param deptid
	 * @return
	 */
	Result queryUserList(String deptid);

	/**
	 * 根据部门ID查询部门以下员工列表
	 * 
	 * @param groupid
	 * @return
	 */
	Result userListByGroupid(String groupid);

	/**
	 * 修改用户密码
	 * 
	 * @param uservo
	 * @return
	 */
	Result updatePassword(TUserVo uservo);

	/**
	 * 校验用户密码
	 * 
	 * @param uservo
	 * @return
	 */
	Result checkPassword(TUserVo uservo);
	
	/**
	 * 导出用户列表
	 * 
	 * @param uservo
	 * @return
	 */
	List<TUserVo> exportUser(String groupid, TUserVo tUserVo);

}
